<!--<template>-->
<template>
  <div>111</div>
</template>
<!--  <div class="app-container">-->
<!--    <el-image style="animation: header-effect 2s"-->
<!--              class="background-image"-->
<!--              v-once-->
<!--              lazy-->
<!--              :src="backgroundImage"-->
<!--              fit="cover">-->
<!--      <template #error>-->
<!--        <div class="image-slot background-image-error">-->
<!--        </div>-->
<!--      </template>-->
<!--    </el-image>-->

<!--    <div class="signature-wall myCenter my-animation-hideToShow">-->
<!--      <h1 class="playful">-->
<!--        Stardust的博客小站-->
<!--      </h1>-->
<!--      <div class="printer">-->
<!--&lt;!&ndash;        <printer :printerInfo="printerInfo">&ndash;&gt;-->
<!--&lt;!&ndash;          <template slot="paper" slot-scope="scope">&ndash;&gt;-->
<!--&lt;!&ndash;            <h3>&ndash;&gt;-->
<!--&lt;!&ndash;              {{ scope.content }}<span class="cursor">|</span>&ndash;&gt;-->
<!--&lt;!&ndash;            </h3>&ndash;&gt;-->
<!--&lt;!&ndash;          </template>&ndash;&gt;-->
<!--&lt;!&ndash;        </printer>&ndash;&gt;-->
<!--      </div>-->
<!--      <div id="bannerWave1"></div>-->
<!--      <div id="bannerWave2"></div>-->
<!--      <el-icon class="el-icon-arrow-down" @click="navigation('.page-container-wrap')"><ArrowDown /></el-icon>-->
<!--    </div>-->

<!--    &lt;!&ndash; 首页内容 &ndash;&gt;-->
<!--    <div class="page-container-wrap">-->
<!--      <div class="page-container">-->
<!--        <div class="aside-content" v-if="showAside">-->
<!--          <myAside @selectSort="selectSort" @selectArticle="selectArticle"></myAside>-->
<!--        </div>-->
<!--        <div class="recent-posts" v-if="sortPage">-->
<!--          <div class="announcement background-opacity" :class=" sortPage ?'announcement-max-width':''">-->
<!--            <i class="fa fa-volume-up" aria-hidden="true"></i>-->
<!--            <div>-->
<!--              <div v-for="(notice, index) in notices" :key="index">-->
<!--                {{ notice }}-->
<!--              </div>-->
<!--            </div>-->
<!--          </div>-->
<!--          <articleList :article-list="articles"></articleList>-->
<!--          <div class="pagination-wrap">-->
<!--            <div @click="pageArticles()" class="pagination" v-if="pagination.total !== articles.length">-->
<!--              下一页-->
<!--            </div>-->
<!--            <div v-else style="user-select: none">-->
<!--              ~~到底啦~~-->
<!--            </div>-->
<!--          </div>-->
<!--        </div>-->
<!--        <div class="recent-posts"  v-else>-->
<!--          <div class="announcement background-opacity" :class=" sortPage ?'announcement-max-width':''">-->
<!--            <i class="fa fa-volume-up" aria-hidden="true"></i>-->
<!--            <div>-->
<!--              <div v-for="(notice, index) in notices" :key="index">-->
<!--                {{ notice }}-->
<!--              </div>-->
<!--            </div>-->
<!--          </div>-->
<!--          <articleListColumnist  :articleList="sortArticles"   @selectSort2="selectSort"></articleListColumnist>-->
<!--        </div>-->
<!--      </div>-->
<!--    </div>-->


<!--  </div>-->
<!--</template>-->

<!--<script setup>-->
<!--import { listFamily, getFamily, delFamily, addFamily, updateFamily } from "@/api/weblog/family";-->
<!--import backgroundImage from '@/assets/file/backgroundImage1.jpg'-->
<!--import myAside from '@/views/weblogFront/myAside/layoutTile.vue'-->
<!--import articleList from '@/views/weblogFront/articleList/layoutTile.vue'-->
<!--import articleListColumnist from "@/views/weblogFront/articleListColumn/layoutTile.vue";-->
<!--import {getCurrentInstance, ref} from "vue";-->

<!--const { proxy } = getCurrentInstance();-->

<!--const notices = ref(["公告一","公告二"]);-->
<!--const open = ref(false);-->
<!--const showAside = ref(true);-->
<!--const sortPage = ref(true);-->
<!--const articles = ref([-->
<!--  {-->
<!--    "id": 32,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11717034783556448.png",-->
<!--    "articleTitle": "Vue3集成mavon-editor富文本编辑器",-->
<!--    "articleContent": " 安装依赖\n安装mavon-editor\nlanguage\nnpm install &#45;&#45;save mavon-editor@3.0.1\n\n安装ma",-->
<!--    "viewCount": 0,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-05-30 02:06:32",-->
<!--    "updateTime": "2024-05-30 02:06:32",-->
<!--    "updateBy": null,-->
<!--    "sortId": 6,-->
<!--    "labelId": 6,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 6,-->
<!--      "sortName": "前端笔记本",-->
<!--      "sortDescription": "前端基础知识",-->
<!--      "sortType": 0,-->
<!--      "priority": 1,-->
<!--      "countOfSort": 1,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 6,-->
<!--      "sortId": 6,-->
<!--      "labelName": "vue",-->
<!--      "labelDescription": "vue",-->
<!--      "countOfLabel": 1-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 31,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust1171504208214977.jpg",-->
<!--    "articleTitle": "【群晖】不允许一个用户使用一个以上用户名..",-->
<!--    "articleContent": "  在cmd下运行\n```\nnet use * /del /y\n```\n来清除系统记录列表。",-->
<!--    "viewCount": 0,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-05-07 00:34:47",-->
<!--    "updateTime": "2024-05-07 00:34:47",-->
<!--    "updateBy": null,-->
<!--    "sortId": 5,-->
<!--    "labelId": 5,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 5,-->
<!--      "sortName": "智能家居",-->
<!--      "sortDescription": "我的洋垃圾折腾过程",-->
<!--      "sortType": 1,-->
<!--      "priority": 4,-->
<!--      "countOfSort": 2,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 5,-->
<!--      "sortId": 5,-->
<!--      "labelName": "路由",-->
<!--      "labelDescription": "软路由",-->
<!--      "countOfLabel": 2-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 30,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11713962103746875.png",-->
<!--    "articleTitle": "Docker安装mysql",-->
<!--    "articleContent": "language\ndocker run &#45;&#45;name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=P@88w0rd",-->
<!--    "viewCount": 5,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-04-24 12:35:12",-->
<!--    "updateTime": "2024-05-29 07:16:55",-->
<!--    "updateBy": null,-->
<!--    "sortId": 3,-->
<!--    "labelId": 2,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 3,-->
<!--      "sortName": "运维宝典",-->
<!--      "sortDescription": "运维相关涉及资料",-->
<!--      "sortType": 1,-->
<!--      "priority": 2,-->
<!--      "countOfSort": 24,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 2,-->
<!--      "sortId": 3,-->
<!--      "labelName": "Docker",-->
<!--      "labelDescription": "Docker",-->
<!--      "countOfLabel": 22-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 29,-->
<!--    "userId": 1,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust1171377041486419.jpg",-->
<!--    "articleTitle": "定时重启docker容器",-->
<!--    "articleContent": "要编写一个每隔八小时执行一次 docker restart kms 命令的 shell 脚本，我们可以使用 cron 来实现定时任务。以下是如何做的步骤",-->
<!--    "viewCount": 1,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-04-22 07:20:27",-->
<!--    "updateTime": "2024-04-22 07:20:35",-->
<!--    "updateBy": null,-->
<!--    "sortId": 3,-->
<!--    "labelId": 2,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 3,-->
<!--      "sortName": "运维宝典",-->
<!--      "sortDescription": "运维相关涉及资料",-->
<!--      "sortType": 1,-->
<!--      "priority": 2,-->
<!--      "countOfSort": 24,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 2,-->
<!--      "sortId": 3,-->
<!--      "labelName": "Docker",-->
<!--      "labelDescription": "Docker",-->
<!--      "countOfLabel": 22-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 28,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11713690109022466.png",-->
<!--    "articleTitle": "小说大纲1",-->
<!--    "articleContent": "人物设定\n1、冷冰怡 ：冷氏集团大小姐、大四学生、性格高冷、内媚\n2、李彦 ：大二生物学高材生、多次获奖、背地里经常浏览sm内容，并为之痴迷\n欣怡：待定\n婉静：",-->
<!--    "viewCount": 5,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": false,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": "私人作品",-->
<!--    "viewStatus": false,-->
<!--    "createTime": "2024-04-21 09:02:51",-->
<!--    "updateTime": "2024-04-25 00:41:57",-->
<!--    "updateBy": "Stardust",-->
<!--    "sortId": 5,-->
<!--    "labelId": 5,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 5,-->
<!--      "sortName": "智能家居",-->
<!--      "sortDescription": "我的洋垃圾折腾过程",-->
<!--      "sortType": 1,-->
<!--      "priority": 4,-->
<!--      "countOfSort": 2,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 5,-->
<!--      "sortId": 5,-->
<!--      "labelName": "路由",-->
<!--      "labelDescription": "软路由",-->
<!--      "countOfLabel": 2-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 27,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11713332325950423.jpg",-->
<!--    "articleTitle": "PostgreSQL 全量备份至Minio",-->
<!--    "articleContent": " PostgreSQL 全量备份至Minio\n\n 安装minio客户端\n\nbash\ndocker run &#45;&#45;name=mc -dit -v /da",-->
<!--    "viewCount": 3,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-04-17 05:39:09",-->
<!--    "updateTime": "2024-04-23 07:53:03",-->
<!--    "updateBy": null,-->
<!--    "sortId": 3,-->
<!--    "labelId": 2,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 3,-->
<!--      "sortName": "运维宝典",-->
<!--      "sortDescription": "运维相关涉及资料",-->
<!--      "sortType": 1,-->
<!--      "priority": 2,-->
<!--      "countOfSort": 24,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 2,-->
<!--      "sortId": 3,-->
<!--      "labelName": "Docker",-->
<!--      "labelDescription": "Docker",-->
<!--      "countOfLabel": 22-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 26,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11712899505856844.jpg",-->
<!--    "articleTitle": "# Docker存储目录迁移  ### ",-->
<!--    "articleContent": " Docker存储目录迁移\n\n 背景：\n\n随着docker的使用时间越来越长，导致镜像和容器越来越多，占满了系统盘空间，这时，我们需要给它们搬个家了\n\n",-->
<!--    "viewCount": 3,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-04-12 05:25:16",-->
<!--    "updateTime": "2024-04-22 09:03:12",-->
<!--    "updateBy": null,-->
<!--    "sortId": 3,-->
<!--    "labelId": 2,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 3,-->
<!--      "sortName": "运维宝典",-->
<!--      "sortDescription": "运维相关涉及资料",-->
<!--      "sortType": 1,-->
<!--      "priority": 2,-->
<!--      "countOfSort": 24,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 2,-->
<!--      "sortId": 3,-->
<!--      "labelName": "Docker",-->
<!--      "labelDescription": "Docker",-->
<!--      "countOfLabel": 22-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 25,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust1171289935100856.jpg",-->
<!--    "articleTitle": "linux磁盘挂载",-->
<!--    "articleContent": " linux磁盘挂载\n\n ***一、挂载***\n\n 1、通过命令fdisk-l查看硬盘信息\n\ngo\nfdisk -l\n\n\n\nDi",-->
<!--    "viewCount": 2,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-04-12 05:22:33",-->
<!--    "updateTime": "2024-04-22 01:35:18",-->
<!--    "updateBy": null,-->
<!--    "sortId": 3,-->
<!--    "labelId": 4,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 3,-->
<!--      "sortName": "运维宝典",-->
<!--      "sortDescription": "运维相关涉及资料",-->
<!--      "sortType": 1,-->
<!--      "priority": 2,-->
<!--      "countOfSort": 24,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 4,-->
<!--      "sortId": 3,-->
<!--      "labelName": "其他",-->
<!--      "labelDescription": "其他",-->
<!--      "countOfLabel": 1-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 24,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11712319669318445.png",-->
<!--    "articleTitle": "openWrt软路由",-->
<!--    "articleContent": " 查看网卡\nlanguage\nifconfig\n\nlanguage\ndocker0   Link encap:Ethernet  HW",-->
<!--    "viewCount": 5,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-04-05 12:21:28",-->
<!--    "updateTime": "2024-04-25 00:41:52",-->
<!--    "updateBy": "Stardust",-->
<!--    "sortId": 5,-->
<!--    "labelId": 5,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 5,-->
<!--      "sortName": "智能家居",-->
<!--      "sortDescription": "我的洋垃圾折腾过程",-->
<!--      "sortType": 1,-->
<!--      "priority": 4,-->
<!--      "countOfSort": 2,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 5,-->
<!--      "sortId": 5,-->
<!--      "labelName": "路由",-->
<!--      "labelDescription": "软路由",-->
<!--      "countOfLabel": 2-->
<!--    }-->
<!--  },-->
<!--  {-->
<!--    "id": 23,-->
<!--    user:{-->
<!--      avatar:null,-->
<!--      userName: "111"-->
<!--    },-->
<!--    "userId": 1,-->
<!--    "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11711005490893926.jpg",-->
<!--    "articleTitle": "Linux系统安装JDK",-->
<!--    "articleContent": " Linux系统安装JDK\n\n 我们提前从官方下载了如：jdk-xxx-linux-xxx.tar.gz 的压缩包，我上传到服务器的 /home 然后开始安",-->
<!--    "viewCount": 5,-->
<!--    "likeCount": 0,-->
<!--    "commentStatus": true,-->
<!--    "recommendStatus": false,-->
<!--    "password": null,-->
<!--    "tips": null,-->
<!--    "viewStatus": true,-->
<!--    "createTime": "2024-03-21 07:18:21",-->
<!--    "updateTime": "2024-05-29 07:24:18",-->
<!--    "updateBy": null,-->
<!--    "sortId": 1,-->
<!--    "labelId": 1,-->
<!--    "commentCount": 0,-->
<!--    "username": "Stardust",-->
<!--    "sort": {-->
<!--      "id": 1,-->
<!--      "sortName": "Java 笔记本",-->
<!--      "sortDescription": "Java相关技术文档",-->
<!--      "sortType": 1,-->
<!--      "priority": 1,-->
<!--      "countOfSort": 1,-->
<!--      "labels": null-->
<!--    },-->
<!--    "label": {-->
<!--      "id": 1,-->
<!--      "sortId": 1,-->
<!--      "labelName": "部署",-->
<!--      "labelDescription": "系统部署相关文档",-->
<!--      "countOfLabel": 1-->
<!--    }-->
<!--  }-->
<!--]);-->
<!--const sortArticles = ref( [-->
<!--  {-->
<!--    "typeName": "运维宝典",-->
<!--    "typeId": 3,-->
<!--    "articles": [-->
<!--      {-->
<!--        "id": 30,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11713962103746875.png",-->
<!--        "articleTitle": "Docker安装mysql",-->
<!--        "articleContent": "```language\ndocker run &#45;&#45;name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=P@88w0rd -d -v /data/mysql/data:/var/lib/mysql mysql &#45;&#45;lower_case_table_names=1\n```\n",-->
<!--        "viewCount": 5,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-04-24 12:35:12",-->
<!--        "updateTime": "2024-05-29 07:16:55",-->
<!--        "updateBy": null,-->
<!--        "sortId": 3,-->
<!--        "labelId": 2,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 3,-->
<!--          "sortName": "运维宝典",-->
<!--          "sortDescription": "运维相关涉及资料",-->
<!--          "sortType": 1,-->
<!--          "priority": 2,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 2,-->
<!--          "sortId": 3,-->
<!--          "labelName": "Docker",-->
<!--          "labelDescription": "Docker",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 29,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust1171377041486419.jpg",-->
<!--        "articleTitle": "定时重启docker容器",-->
<!--        "articleContent": "要编写一个每隔八小时执行一次 `docker restart kms` 命令的 shell 脚本，我们可以使用 `cron` 来实现定时任务。以下是如何做的步骤：\n\n1. **编写 shell 脚本**\n\n首先，创建一个简单的 shell 脚本，例如命名为 `restart_kms.sh`：\n\n```bash\n#!/bin/bash  \ndocker restart kms\n```\n\n给这个脚本执行权限：\n\n```bash\nbash复制代码chmod +x restart_kms.sh\n```\n\n1. **设置 cron 任务**\n\n接下来，我们需要使用 `crontab` 来设置定时任务。\n\n打开当前用户的 crontab：\n\n```bash\nbash复制代码crontab -e\n```\n\n然后，在打开的编辑器中，添加以下行以每隔八小时执行一次 `restart_kms.sh` 脚本：\n\n```bash\nbash复制代码0 */8 * * * /path/to/restart_kms.sh\n```\n\n请确保将 `/path/to/restart_kms.sh` 替换为 `restart_kms.sh` 脚本的实际路径。\n\n保存并退出编辑器。现在，cron 将在每天的 00:00, 08:00, 16:00 等时间执行 `restart_kms.sh` 脚本。\n\n**注意**：确保 Docker 服务正在运行，并且 `kms` 容器存在。如果 `kms` 容器不存在，`docker restart kms` 命令将失败。你可能需要添加一些错误处理逻辑到 `restart_kms.sh` 脚本中，以确保在容器不存在时不会出错。",-->
<!--        "viewCount": 1,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-04-22 07:20:27",-->
<!--        "updateTime": "2024-04-22 07:20:35",-->
<!--        "updateBy": null,-->
<!--        "sortId": 3,-->
<!--        "labelId": 2,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 3,-->
<!--          "sortName": "运维宝典",-->
<!--          "sortDescription": "运维相关涉及资料",-->
<!--          "sortType": 1,-->
<!--          "priority": 2,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 2,-->
<!--          "sortId": 3,-->
<!--          "labelName": "Docker",-->
<!--          "labelDescription": "Docker",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 27,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11713332325950423.jpg",-->
<!--        "articleTitle": "PostgreSQL 全量备份至Minio",-->
<!--        "articleContent": "# PostgreSQL 全量备份至Minio\n\n## 安装minio客户端\n\n```bash\ndocker run &#45;&#45;name=mc -dit -v /data:/data &#45;&#45;entrypoint=/bin/sh minio/mc\n```\n\n### 配置minio\n\n```\ndocker exec -it  mc /bin/bash\n```\n\n```\nmc config host add pgminio http://10.60.0.8:9000  minioadmin minioadmin  &#45;&#45;api s3v4\n```\n\n## 同步脚本\n\n```bash\n#!/bin/bash  \n  \n# Docker 和 MinIO 配置  \nMC_CONTAINER_NAME=\"mc\"   # mc Docker 容器的名称或ID  \nMINIO_ALIAS=\"pgminio\"               # MinIO 的别名  \nMINIO_BUCKET=\"pg-backup\"    # MinIO 存储桶名称  \n  \n# 获取当前时间戳，并将其格式化为 YYYYMMDD_HHMMSS 的形式  \nTIMESTAMP=$(date +\"%Y%m%d_%H%M%S\")  \n  \n# 构造备份文件名，包含时间戳  \nBACKUP_FILE=\"/data/backup/backup_${TIMESTAMP}.sql\"  \n  \n# 使用 docker exec 在 pgmaster 容器中执行 pg_dump 命令，并将输出重定向到带时间戳的备份文件  \ndocker exec -it pgmaster pg_dump -U postgres -d postgres -f - > \"${BACKUP_FILE}\"  \n  \n# 检查备份是否成功创建  \nif [ -f \"${BACKUP_FILE}\" ]; then  \n    echo \"Backup created: ${BACKUP_FILE}\"  \n  \n    # 使用 docker exec 在 mc 容器中执行 mc cp 命令来上传文件到 MinIO  \n    docker exec -it ${MC_CONTAINER_NAME} mc cp \"${BACKUP_FILE}\" \"${MINIO_ALIAS}/${MINIO_BUCKET}/${BACKUP_FILE##*/}\"  \n  \n    # 检查文件是否成功上传  \n    if [ $? -eq 0 ]; then  \n        echo \"Backup uploaded to MinIO successfully.\"  \n    else  \n        echo \"Failed to upload backup to MinIO.\"  \n    fi  \n  \n    # 可选：删除本地备份文件以节省空间（请谨慎操作）  \n    # rm \"${BACKUP_FILE}\"  \nelse  \n    echo \"Failed to create backup file.\"  \nfi\n```\n\n## 定时执行\n\n```bash\ncrontab -e\n```\n\n```\n0 2 * * * /bin/bash /data/backup/backup_with_minio.sh\n```\n\n",-->
<!--        "viewCount": 3,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-04-17 05:39:09",-->
<!--        "updateTime": "2024-04-23 07:53:03",-->
<!--        "updateBy": null,-->
<!--        "sortId": 3,-->
<!--        "labelId": 2,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 3,-->
<!--          "sortName": "运维宝典",-->
<!--          "sortDescription": "运维相关涉及资料",-->
<!--          "sortType": 1,-->
<!--          "priority": 2,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 2,-->
<!--          "sortId": 3,-->
<!--          "labelName": "Docker",-->
<!--          "labelDescription": "Docker",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 26,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11712899505856844.jpg",-->
<!--        "articleTitle": "# Docker存储目录迁移  ### ",-->
<!--        "articleContent": "# Docker存储目录迁移\n\n### 背景：\n\n随着docker的使用时间越来越长，导致镜像和容器越来越多，占满了系统盘空间，这时，我们需要给它们搬个家了\n\n```\ndocker info ：查看docker的存储等相关信息\n```\n\n1、停止docker 服务\n\n```\nservice docker stop\n```\n\n2、备份数据到新的存放路径\n\n```\ncp -r /var/lib/docker/* /data/docker\n```\n\n3、备份 /var/lib/docker 路径\n\n```\nmv /var/lib/docker  /var/lib/dockerbak}\n```\n\n4、创建软连接\n\n```\nln -s /data/docker /var/lib/docker\n```\n\n5、启动docker\n\n```\nservice docker start\n如果docker完整，并可用，可删除原来的备份文件\n```\n\n此方法，启动Docker时发现存储目录依旧是/var/lib/docker，但是实际上是存储在数据盘的，你可以在数据盘上看到容量变化。\n",-->
<!--        "viewCount": 3,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-04-12 05:25:16",-->
<!--        "updateTime": "2024-04-22 09:03:12",-->
<!--        "updateBy": null,-->
<!--        "sortId": 3,-->
<!--        "labelId": 2,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 3,-->
<!--          "sortName": "运维宝典",-->
<!--          "sortDescription": "运维相关涉及资料",-->
<!--          "sortType": 1,-->
<!--          "priority": 2,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 2,-->
<!--          "sortId": 3,-->
<!--          "labelName": "Docker",-->
<!--          "labelDescription": "Docker",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 25,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust1171289935100856.jpg",-->
<!--        "articleTitle": "linux磁盘挂载",-->
<!--        "articleContent": "# linux磁盘挂载\n\n## ***一、挂载***\n\n#### 1、通过命令fdisk-l查看硬盘信息\n\n```go\nfdisk -l\n```\n\n```\nDisk /dev/loop0: 61.89 MiB, 64901120 bytes, 126760 sectors\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical/physical): 512 bytes / 512 bytes\nI/O size (minimum/optimal): 512 bytes / 512 bytes\n\n\nDisk /dev/loop1: 79.95 MiB, 83832832 bytes, 163736 sectors\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical/physical): 512 bytes / 512 bytes\nI/O size (minimum/optimal): 512 bytes / 512 bytes\n\n\nDisk /dev/loop2: 44.68 MiB, 46845952 bytes, 91496 sectors\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical/physical): 512 bytes / 512 bytes\nI/O size (minimum/optimal): 512 bytes / 512 bytes\nGPT PMBR size mismatch (2147483647 != 8589934591) will be corrected by write.\n\n\nDisk /dev/sda: 4 TiB, 4398046511104 bytes, 8589934592 sectors\nDisk model: VMware Virtual S\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical/physical): 512 bytes / 512 bytes\nI/O size (minimum/optimal): 512 bytes / 512 bytes\nDisklabel type: gpt\nDisk identifier: 943A1D4D-EEF4-4EC1-8483-A5CD69EE2797\n\nDevice       Start        End    Sectors  Size Type\n/dev/sda1     2048       4095       2048    1M BIOS boot\n/dev/sda2     4096    4198399    4194304    2G Linux filesystem\n/dev/sda3  4198400 2147481599 2143283200 1022G Linux filesystem\n\n\nDisk /dev/mapper/ubuntu&#45;&#45;vg-ubuntu&#45;&#45;lv: 100 GiB, 107374182400 bytes, 209715200 sectors\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical/physical): 512 bytes / 512 bytes\nI/O size (minimum/optimal): 512 bytes / 512 bytes\n```\n\n\n\n> 可以看到有两块硬盘/dev/vda和/dev/vdb，启动vda是系统盘，vdb是我们新增的数据盘。\n\n#### 2.执行以下命令，进入fdisk模式，开始对新增数据盘执行分区操作。\n\n```go\n// 以新挂载的数据盘“/dev/vdb”为例：\nfdisk /dev/sda\n```\n\n```\nroot@jeegit:/home/jeegit# fdisk /dev/sda\n\nWelcome to fdisk (util-linux 2.37.2).\nChanges will remain in memory only, until you decide to write them.\nBe careful before using the write command.\n\nGPT PMBR size mismatch (2147483647 != 8589934591) will be corrected by write.\nThis disk is currently in use - repartitioning is probably a bad idea.\nIt's recommended to umount all file systems, and swapoff all swap\npartitions on this disk.\n\n\nCommand (m for help): \n```\n\n\n\n#### 3.输入“n”，按“Enter”，开始新建分区。\n\n```bash\nCommand (m for help): n\nPartition number (4-128, default 4): \nFirst sector (2147481600-8589934558, default 2147481600): \nLast sector, +/-sectors or +/-size{K,M,G,T,P} (2147481600-8589934558, default 8589934558): \n\nCreated a new partition 4 of type 'Linux filesystem' and of size 3 TiB.\n\nCommand (m for help): \n```\n\n#### 4.输入“p”，按“Enter”，查看新建分区的详细信息。\n\n回显类似如下信息：\n\n```\nCommand (m for help): p\nDisk /dev/sda: 4 TiB, 4398046511104 bytes, 8589934592 sectors\nDisk model: VMware Virtual S\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical/physical): 512 bytes / 512 bytes\nI/O size (minimum/optimal): 512 bytes / 512 bytes\nDisklabel type: gpt\nDisk identifier: 943A1D4D-EEF4-4EC1-8483-A5CD69EE2797\n\nDevice          Start        End    Sectors  Size Type\n/dev/sda1        2048       4095       2048    1M BIOS boot\n/dev/sda2        4096    4198399    4194304    2G Linux filesystem\n/dev/sda3     4198400 2147481599 2143283200 1022G Linux filesystem\n/dev/sda4  2147481600 8589934558 6442452959    3T Linux filesystem\n```\n\n\n\n> 表示新建分区“/dev/sda4”的详细信息。\n\n#### 9.输入“w”，按“Enter”，将分区结果写入分区表中。\n\n回显类似如下信息：\n\n```\nCommand (m for help): w\nThe partition table has been altered.\nSyncing disks.\n```\n\n\n\n> 表示分区创建完成。\n\n#### 10.执行以下命令，将新的分区表变更同步至操作系统。\n\n```go\npartprobe\n```\n\n#### 11.执行以下命令，将新建分区文件系统设为系统所需格式。\n\n```go\n// mkfs -t 文件系统格式 /dev/vdb1\n// 以设置文件系统为“ext4”为例：\nmkfs -t ext4 /dev/sda4\n```\n\n回显类似如下信息：\n\n```bash\nroot@jeegit:/home/jeegit# mkfs -t ext4 /dev/sda4\nmke2fs 1.46.5 (30-Dec-2021)\nCreating filesystem with 805306368 4k blocks and 201719808 inodes\nFilesystem UUID: cfbe0b06-d696-4a81-8b9b-d1201c097c27\nSuperblock backups stored on blocks: \n        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, \n        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, \n        102400000, 214990848, 512000000, 550731776, 644972544\n\nAllocating group tables: done                            \nWriting inode tables: done                            \nCreating journal (262144 blocks): done\nWriting superblocks and filesystem accounting information: done  \n```\n\n\n\n> 格式化需要等待一段时间，请观察系统运行状态，不要退出。\n\n#### 12.执行以下命令，新建挂载点。\n\n```go\nmkdir /data\n```\n\n#### 13.执行以下命令，将新建分区挂载到12中新建的挂载点下。\n\n```go\n//  mount /dev/vdb1 挂载点\n//  以挂载新建分区至“/XC”为例：\nmount /dev/sda4 /data\n```\n\n14.执行以下命令，查看挂载结果。\n\n```go\ndf -h\n如果有/data 目录，且为3T\n表示新建分区“/dev/vdb1”已挂载至“/data”。\n123\n```\n\n## ***二、设置开机自动挂载磁盘***\n\n#### 1.执行如下命令，查询磁盘分区的UUID。\n\n```go\n// blkid 磁盘分区\n// 以查询磁盘分区“/dev/vdb1”的UUID为例：\nblkid /dev/sda4\n```\n\n\n表示“/dev/sda4”的UUID。\n\n#### 2.通过vim编辑/etc/fstab\n\n```go\n//在末尾增加一行\n//uuid和目录替换为你自己的信息\nUUID=cfbe0b06-d696-4a81-8b9b-d1201c097c27 /data ext4 defaults 0 2\n//保存\n:wq\n```\n\n#### 3.重启服务器\n\n```go\n通过命令df -h查看磁盘信息，完成开启自动挂载\n```\n\n\n\n\n\n使用 `pvdisplay` 或 `pvs` 命令来查看物理卷的信息\n\n**查看卷组信息**：\n\n```\npvs\n```\n\n**查看逻辑卷信息**：\n\n```\nlvs -o +devices ubuntu-vg\n```\n\n**创建新的逻辑卷**：\n\n```\nlvcreate -n data-lv -L 900G ubuntu-vg\n```\n\n**格式化逻辑卷**：\n\n```\nmkfs.ext4 /dev/mapper/ubuntu&#45;&#45;vg-data&#45;&#45;lv\n```\n\n##### 挂载逻辑卷：\n\n```\nmount /dev/mapper/ubuntu&#45;&#45;vg-data&#45;&#45;lv /data\n```\n\n##### 持久化\n\n```\necho '/dev/mapper/ubuntu&#45;&#45;vg-data&#45;&#45;lv /data ext4 defaults 0 2' | sudo tee -a /etc/fstab\n```\n",-->
<!--        "viewCount": 2,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-04-12 05:22:33",-->
<!--        "updateTime": "2024-04-22 01:35:18",-->
<!--        "updateBy": null,-->
<!--        "sortId": 3,-->
<!--        "labelId": 4,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 3,-->
<!--          "sortName": "运维宝典",-->
<!--          "sortDescription": "运维相关涉及资料",-->
<!--          "sortType": 1,-->
<!--          "priority": 2,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 4,-->
<!--          "sortId": 3,-->
<!--          "labelName": "其他",-->
<!--          "labelDescription": "其他",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 22,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11709274528460942.jpg",-->
<!--        "articleTitle": "docker-compose",-->
<!--        "articleContent": "# 安装\n\n```\ncurl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose\n```\n\n```\nchmod +x docker-compose\n```\n\n# 案例\n\n(1) 创建目录，作为`项目名`\n\n注意：空目录，不要放无关紧要其他文件。\n\n(2) 在项目名目录中，创建`docker-compose.yml`\n\n注意：文件名，固定，不要改。\n\n(3) 编写资源(容器)清单：`docker-compose.yml`\n\n```\nversion: '3'\nservices:\n  dsg-gateway:\n    build:\n      context: ./gateway\n      dockerfile: Dockerfile\n    container_name: dsg-gateway\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48080:48080\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/gateway:/root/logs/  # 挂载卷\n  dsg-amc:\n    build:\n      context: ./amc\n      dockerfile: Dockerfile\n    container_name: dsg-amc\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48088:48088\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/amc:/root/logs/  # 挂载卷\n  dsg-bdr:\n    build:\n      context: ./bdr\n      dockerfile: Dockerfile\n    container_name: dsg-bdr\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48086:48086\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/bdr:/root/logs/  # 挂载卷\n  dsg-gis:\n    build:\n      context: ./gis\n      dockerfile: Dockerfile\n    container_name: dsg-gis\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48091:48091\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/gis:/root/logs/  # 挂载卷\n  dsg-infra:\n    build:\n      context: ./infra\n      dockerfile: Dockerfile\n    container_name: dsg-infra\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48082:48082\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/infra:/root/logs/  # 挂载卷\n  dsg-opm:\n    build:\n      context: ./opm\n      dockerfile: Dockerfile\n    container_name: dsg-opm\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48085:48085\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/opm:/root/logs/  # 挂载卷\n  dsg-pmc:\n    build:\n      context: ./pmc\n      dockerfile: Dockerfile\n    container_name: dsg-pmc\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48087:48087\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/pmc:/root/logs/  # 挂载卷\n  dsg-rrc:\n    build:\n      context: ./rrc\n      dockerfile: Dockerfile\n    container_name: dsg-rrc\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48090:48090\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/rrc:/root/logs/  # 挂载卷\n  dsg-sac:\n    build:\n      context: ./sac\n      dockerfile: Dockerfile\n    container_name: dsg-sac\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"49089:49089\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/sac:/root/logs/  # 挂载卷\n  dsg-system:\n    build:\n      context: ./system\n      dockerfile: Dockerfile\n    container_name: dsg-system\n    restart: always  # 可选，设置容器总是重新启动\n    ports:\n      - \"48081:48081\"  # 端口映射\n    environment:\n      - SPRING_PROFILES_ACTIVE=test  # 设置环境变量\n    volumes:\n      - /data/dsg-cloud/system:/root/logs/  # 挂载卷\n```\n\n启动容器\n\n```\ndocker-compose up -d\n```\n\n它将停止并移除容器，并删除所有相关的镜像\n\n```\ndocker-compose down &#45;&#45;rmi all\n```\n\n",-->
<!--        "viewCount": 6,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-03-01 06:28:51",-->
<!--        "updateTime": "2024-04-07 06:43:43",-->
<!--        "updateBy": null,-->
<!--        "sortId": 3,-->
<!--        "labelId": 2,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 3,-->
<!--          "sortName": "运维宝典",-->
<!--          "sortDescription": "运维相关涉及资料",-->
<!--          "sortType": 1,-->
<!--          "priority": 2,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 2,-->
<!--          "sortId": 3,-->
<!--          "labelName": "Docker",-->
<!--          "labelDescription": "Docker",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      }-->
<!--    ]-->
<!--  },-->
<!--  {-->
<!--    "typeName": "Java 笔记本",-->
<!--    "typeId": 1,-->
<!--    "articles": [-->
<!--      {-->
<!--        "id": 23,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11711005490893926.jpg",-->
<!--        "articleTitle": "Linux系统安装JDK",-->
<!--        "articleContent": "# Linux系统安装JDK\n\n> 我们提前从官方下载了如：jdk-xxx-linux-xxx.tar.gz 的压缩包，我上传到服务器的 /home 然后开始安装 \n\n\n\n## 准备JDK\n\n解压tar.gz压缩包\n\n```bash\ntar -zxvf jdk-8u381-linux-x64.tar.gz\n```\n\n剪贴到/usr/local目录下（注：此目录通常编译或安装不是直接来自官方仓库或软件包管理器的软件包）\n\n```bash\nmv jdk1.8.0_381/ /usr/local/\ncd /usr/local/jdk1.8.0_381\nll\n```\n\n## 手动配置Java环境变量\n\n手动配置Java环境变量\n\n```bash\nvim /etc/profile\n```\n\n把下面的配置放到文件的最后一行\n\n```bash\nexport JAVA_HOME=/usr/local/jdk1.8.0_381\nexport PATH=$JAVA_HOME/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib\n```\n\n让配置立即生效\n\n```bash\nsource /etc/profile\n```\n\n",-->
<!--        "viewCount": 5,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-03-21 07:18:21",-->
<!--        "updateTime": "2024-05-29 07:24:18",-->
<!--        "updateBy": null,-->
<!--        "sortId": 1,-->
<!--        "labelId": 1,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 1,-->
<!--          "sortName": "Java 笔记本",-->
<!--          "sortDescription": "Java相关技术文档",-->
<!--          "sortType": 1,-->
<!--          "priority": 1,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 1,-->
<!--          "sortId": 1,-->
<!--          "labelName": "部署",-->
<!--          "labelDescription": "系统部署相关文档",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 21,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11706489445566223.jpg",-->
<!--        "articleTitle": "账号密码保存",-->
<!--        "articleContent": "账号：18279243370\n密码：1020322274Li\n性别：男\n\n\n\n账号：13534486790\n密码：aaaBBB123\n性别：男\n\n\n\n账号：17639938035\n密码：aaaBBB123\n性别：男\n\n账号：17323065382\n密码：aaaBBB123\n性别：男\n\n账号：15882440383\n密码：aaaBBB123\n性别：男\n\n账号：19527459465\n密码：aaaBBB123\n性别：男\n\n账号：15882440383\n密码：aaaBBB123\n性别：男\n\n\n账号：17626441553\n密码：5524535Ql\n性别：女\n\n\n账号：18279259964\n密码：aaaBBB123\n性别：女\n\n\n账号：15731358309\n密码：aaaBBB123\n性别：女\n\n\n账号：15008475180\n密码：aaaBBB123\n性别：女\n\n\n账号：15678690019\n密码：aaaBBB123\n性别：女\n\n\n账号：13606177968\n密码：aaaBBB123\n性别：女\n\n\n账号：15932387671\n密码：aaaBBB123\n性别：女\n",-->
<!--        "viewCount": 42,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": "3166804825",-->
<!--        "tips": "不可见",-->
<!--        "viewStatus": false,-->
<!--        "createTime": "2024-01-29 00:51:18",-->
<!--        "updateTime": "2024-05-27 05:31:50",-->
<!--        "updateBy": "Stardust",-->
<!--        "sortId": 1,-->
<!--        "labelId": 1,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 1,-->
<!--          "sortName": "Java 笔记本",-->
<!--          "sortDescription": "Java相关技术文档",-->
<!--          "sortType": 1,-->
<!--          "priority": 1,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 1,-->
<!--          "sortId": 1,-->
<!--          "labelName": "部署",-->
<!--          "labelDescription": "系统部署相关文档",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 14,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://s5zzd906o.hb-bkt.clouddn.com/articleCover/Stardust11703237219517513.jpg",-->
<!--        "articleTitle": "111",-->
<!--        "articleContent": "111",-->
<!--        "viewCount": 3,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": "2222",-->
<!--        "tips": "请输入密码",-->
<!--        "viewStatus": false,-->
<!--        "createTime": "2023-12-22 09:27:05",-->
<!--        "updateTime": "2023-12-23 02:42:49",-->
<!--        "updateBy": "Stardust",-->
<!--        "sortId": 1,-->
<!--        "labelId": 1,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 1,-->
<!--          "sortName": "Java 笔记本",-->
<!--          "sortDescription": "Java相关技术文档",-->
<!--          "sortType": 1,-->
<!--          "priority": 1,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 1,-->
<!--          "sortId": 1,-->
<!--          "labelName": "部署",-->
<!--          "labelDescription": "系统部署相关文档",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      }-->
<!--    ]-->
<!--  },-->
<!--  {-->
<!--    "typeName": "智能家居",-->
<!--    "typeId": 5,-->
<!--    "articles": [-->
<!--      {-->
<!--        "id": 31,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust1171504208214977.jpg",-->
<!--        "articleTitle": "【群晖】不允许一个用户使用一个以上用户名..",-->
<!--        "articleContent": "  在cmd下运行\n```\nnet use * /del /y\n```\n来清除系统记录列表。",-->
<!--        "viewCount": 0,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-05-07 00:34:47",-->
<!--        "updateTime": "2024-05-07 00:34:47",-->
<!--        "updateBy": null,-->
<!--        "sortId": 5,-->
<!--        "labelId": 5,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 5,-->
<!--          "sortName": "智能家居",-->
<!--          "sortDescription": "我的洋垃圾折腾过程",-->
<!--          "sortType": 1,-->
<!--          "priority": 4,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 5,-->
<!--          "sortId": 5,-->
<!--          "labelName": "路由",-->
<!--          "labelDescription": "软路由",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 28,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11713690109022466.png",-->
<!--        "articleTitle": "小说大纲1",-->
<!--        "articleContent": "人物设定\n1、冷冰怡 ：冷氏集团大小姐、大四学生、性格高冷、内媚\n2、李彦 ：大二生物学高材生、多次获奖、背地里经常浏览sm内容，并为之痴迷\n欣怡：待定\n婉静：待定\n晓蕾：待定\n梓涵：待定\n雅琳：待定\n芷若：待定\n诗涵：冷冰怡从小到大的闺蜜\n雨萱：待定\n芷婷：待定\n璟雯：待定\n内容设定\n\n\n前记 冷氏有女初长成\n\t慧泽集团，S市首屈一指的大型财团企业。凭借其遥遥领先的生物与人工智能科技垄断了奉天市的医药，生物与计算机领域。不过人们提及最多的却并不是其所积累的庞大财富，而是集团掌舵者冷氏一家那超高的颜值。冷氏夫妇年逾四十，岁月却仿佛没有在他们身上留下任何痕迹，夫妻二人均有着一张英俊(美丽)的面庞以及健美有致的身材，无论走到哪里都会引来周围人惊艳的目光。\n更为难得的是他们的基因似乎完美遗传给了下一代，夫妻俩膝下育有一女，名为冷冰怡，自幼便展现出惊人的天赋，不仅继承了父母亲的美貌与智慧，更是早早地便显露出经商的天赋。冷冰怡也和父母一样很少抛头露面，但偶尔几次出席公司重要场合或是宴会，无不引起众人赞叹，人们甚至私下里偷偷传言冷家大小姐乃是仙女下凡。当然这些都只是人们的猜测而已，毕竟自从冷冰怡成年之后就再也没有在公共场合出现过。对此大家虽然十分好奇，却也只能从流出的照片上略窥一二，感叹上天对这一家人的恩赐。然而鲜有人知道，如此完美的冰怡却也有着不为人知的一面。从小到大一直被视作掌上明珠的冷冰怡从来没有缺过什么物质享受，无论是学习还是生活上的需求都被父母满足得妥妥帖帖。但久而久之冷冰怡也逐渐感到厌烦，她讨厌众星捧月般，到处都围绕着表扬与赞美的生活。知道十八岁成年那天，生日宴过后与她的闺蜜一同偷偷去了酒吧。那个在她之前的生活中只存在于一个听说中的地方，只用一次她就爱上了那个地方，里面炫目的霓虹灯与火热的气氛令她着迷，同时在这里也没人认识她没人知道她是冷氏集团的唯一千金。在这里的人们眼中她只是一个容貌出众出来买醉的普通一员。因此在这里她可以脱下之前为了维护冷氏集团形象的高冷外衣，做回真正的自己。\n第一章 酒馆买醉\n\tH大学步行街上，冷冰怡一人独自闲逛，因临近毕业换届，连日来学生会的高强度工作使得她身心俱疲。因此今晚约了闺蜜梓涵一起去酒吧放松一下，来缓解因连日工作的疲惫。怎料梓涵梓涵突然打电话来说晚上有些急事需要处理，冷冰怡只能独自前去。\"哼！这个死梓涵，每次都要放我鸽子，这次一定让她请我吃饭作为补偿！\"一边想着，一边走进一家新开的酒馆。这家店装修比较特别，整体风格是暗红色调，墙壁上挂着一些欧洲中世纪的油画，看起来颇有些古色古香的味道。店内装饰也是采用了红木桌椅的设计，给人一种典雅端庄的感觉。\"嗯，不错，应该是一家很棒的店。\"环顾四周后，冷冰怡心中满意地想到。随即找了个靠窗的位置坐下，招呼服务员点单。\"您好，小姐，请问您要点些什么？\"服务员问道。\"随便给我来一杯你们的特色酒吧。\"冰怡说道。殊不知，这家酒吧最具有特色的酒带有催情的作用，很多年轻的情侣都喜欢过来尝试，体验一下不一样的激情，反馈效果很好。\"好的，请您稍等。\"服务员虽然疑惑为什么一个单身美女会点这款产品，但也没有过多考虑而是转身离去，开始调配。片刻之后，他将调制好的饮料端到冷冰怡面前。冷冰怡拿起杯子抿了一口，顿时一股清凉的感觉顺着喉咙直冲大脑，将她积攒多日的疲惫一扫而空。\"啊~\"冷冰怡舒服地发出一声轻吟。\"看来今天是个好日子呢！\"她心里想着。\"嗯？这杯酒好像跟平时不太一样………味道更浓一点。\"冷冰怡仔细品尝着这杯酒，发现它的口感更加醇厚浓郁，并且酒精含量也比平时的更高。正当她纳闷时，忽然感觉身体一阵燥热，下身传来阵阵瘙痒感。这种感觉让她有些不知所措，因为从未经历过这样的情况。于是她决定先去卫生间冷静一下。\"老板，不好意思，我去趟洗手间。\"冷冰怡起身离开座位。\"好的，小姐。\"老板笑着回答道。来到卫生间门口时，冷冰怡已经迫不及待地将裙子卷了起来，准备解决一下私处的问题。但是刚把手伸进去还没动两下就被夹紧的阴唇给阻挡住了前进的步伐。\"可恶！\"冷冰怡不禁恼怒起来，用手使劲揉搓了一下那两瓣肉壁才得以进入。可是刚刚碰到那层软嫩的地方就感觉到全身触电一般麻酥酥的，就像有无数个小蚂蚁同时在爬，那种奇异的感觉瞬间席卷了她身体的每一寸皮肤。\"怎么回事！\"冷冰怡心中惊讶地想着。\"怎么会这样？\"她的身体开始不受控制地颤抖起来，手指也不由自主地在那里摩擦着。\"啊~好痛！\"冷冰怡突然发出一声尖叫，整个人像是被电击了一般，身体剧烈颤抖起来。这种感觉让她几乎要失去理智，但最终还是强忍住了冲动。冷冰怡将手从阴唇上移开后，立刻感到自己的下身已经湿透了。\"怎么会湿的这么厉害？！难道是因为喝醉酒的关系？\"她心有余悸地想着。\"可是明明没有喝酒呀？！\"她又回想刚才的过程。\"应该是酒精的原因吧？\"她自我安慰着。随后深吸一口气试图平静下来。但她脑子里却情不自禁浮现出了自己之前偷偷看过的色情电影，体内的情欲不断高涨。情不自禁中一手攀上乳房，用力的揉捏着，一手伸入短裙用力的探入花心，她的两条纤细笔直的大腿在空中不断张合著，大腿根部的位置清晰可见一抹诱人的春光，原本粉色的阴唇早已充血变成玫红色，紧紧贴在大腿内侧。一双修长的美腿不住地颤颤抖，脚趾也在用力蜷缩着。\"哦——不行了，好难受！我要疯掉了！啊！！\"冷冰怡低声吼着，一只小手不停抚摸着自己的胸部，手指时不时捏住已经硬起来的乳头搓揉起来，脸上的表情充满了羞涩与迷茫。她已经快要到达崩溃的边缘了。此时此刻她的身体正在经历一种前所未有过快感，这种快感令她浑身发热发烫。冷冰怡想要停止这种刺激，可是越是阻止越是控制不住。她感觉自己就像一艘迷失在惊涛骇浪之中，即将面临灭顶之灾的小船，孤独、无助且恐惧，但心底又隐隐生出一股渴望，希望这风浪能更大些………此时的冷冰怡就像一朵正在盛开的花朵，渴望被狂风骤雨所洗礼。\"啊……啊……好疼……\"她的小手继续在自己敏感处上下游，感受到自己已经湿透了。于是她用手指轻柔地摩挲着自己的大阴唇和小穴。\"啊啊……好痒……\"冰怡的两条美腿不停地颤抖着，身体不由自主地挺起。她的手指不停地在花心的位置磨蹭着，在阴唇边缘的部分也不停地摩挲着。\"唔~\"冰怡突然发出轻吟之后，整个人猛地一跳。冰怡觉得自己正在快乐地坠落在无边无际的黑暗之中，可是一直到最后还没有找到归宿，只剩下了无数种奇异的快感。\"啊！\"冰怡的声音越发激烈起来。她的大腿开始不停地颤抖起来，身体一动也不能动。她深知附近导出是人，而且厕所所谓的墙壁只是薄薄一片木板，极不隔音。可愈加高涨的情欲使她逐渐忘记了这些，一面坐在马桶上用力的张大双腿一面不断的大力揉搓乳房与阴核。愈加错乱的理智使得她无法控制的传出呻吟声，脑海中之前看过情色视频的片段不断浮现，不知不觉代入其中。“啊，主人~，用力，不要停，用力插母狗的逼逼。”冰怡不受控制的一边呻吟着，一边梦呓般说出刚刚的话语。可是逐渐沦丧的理智已经使她无法控制自己的身体，迟迟无法到达的高潮成为了她现在唯一的追求。空旷的卫生间逐渐传出扑哧扑哧的抽查声以及那努力压制的嗯啊~，嗯啊~的呻吟声。\n\t“咚咚咚，女士，请问有什么需要帮助的嘛”，传来的敲门声唤醒了冰怡的理智。让她认识到了目前的处境。“啊，不，不，不需要了”冰怡急忙回答。“啊，好的，女士有什么需要的可以随时联系我哦，很乐意为您排遣寂寞”，随着传来的话语声以及逐渐远去的脚步声，冰怡小心翼翼的打开厕所门左右观察一番，并没有发现其他人的踪迹，赶紧从厕所走了出来，站在洗后台前的镜子前，看着脸上的丝丝红晕。想着之前做的羞人事情被人听到，羞愤不已，同时也在疑惑今天自己是怎么了，会在公共场所做出这样的事情来。伴随的还有一种莫大的刺激感以及高潮前被人打断的一丝丝遗憾。收拾好情绪冰怡急忙回到位置，打算再呆一会就结束今天这荒诞而又刺激的旅程。随着剩下的酒水一点点消失，冰怡身体里之前被强行压下的欲念有一点点浮现出来，不但没有丝毫减弱，反而因为之前的强行压制而来的更加猛烈，势不可挡。冰怡紧紧夹紧双腿，不断地摩擦着，丝丝缕缕的淫液逐渐渗透内裤滑落腿上。\"嗯......啊……\"她的脸颊已染上了淡淡的红晕，眼神开始迷离。酒精在她的身体里作祟，她感到一阵强烈的眩晕袭来，浑身难受得仿佛要炸裂开来。她紧握着酒杯，试图用那冰凉的触感来平复内心的燥热。就在这时，一个熟悉的声音在她的耳边响起：“你好，我可以坐这里吗？”她抬起头，映入眼帘的是一张英俊的面孔。五官立体而深邃，眉宇间透着一股不羁与洒脱，眼神清澈而坚定，仿佛能洞察人心。冰怡的心突然漏跳了一拍，被眼前男生的帅气所吸引，仿佛整个世界都静止了。她呆呆地看着他，忘记了回答。男生见她没有反应，轻轻地笑了笑，那笑容如春风拂面，让女主的心跳得更加猛烈。“可以吗？”男主再次问道。女主这才回过神来，她点了点头，脸上泛起一抹红晕。眼前的人坐下后冰怡才反应过来这个声音不就是刚刚在厕所打断自己高潮的声音么。两次窘态被同一人发现，冰怡脸上的脸色愈发红润起来。“自我介绍一下，李彦，H大大二生物系学生，可以叫我阿彦。”男人的自我介绍拉回了冰怡的思绪。“你，你好，吕冰怡，H大大四学生”冰怡断断续续的回答道。“原来还是学姐，你这个样子是有什么需要帮助的嘛？学弟很愿意为学排遣寂寞”看着眼前的英俊面孔，以及两次窘态皆被眼前之人发现，貌似也是一种缘分，在酒精及其中催情成分的催发下突然觉得把自己珍藏了二十多年的处子之身交给眼前的男子也是一个不错的选择。种种因素叠加下。冰怡站起身来，微微弯腰，一手挑着对面男子的下颌“阿彦，要不要和姐姐去快活一下呢？”\n第二章 一夜激情\n\tH市最大的连锁酒店，顶层套房内，冰怡的外套早已被脱下。腿上的丝袜也不翼而飞，双手被黑丝束缚绑在背后。穿着单薄的衬衫与短裙，在酒内催情成分的催发下，不断的在床上扭动着紧紧夹紧双腿，不断地摩擦着，身下的床单也已有了点点湿痕，原来是阿彦洗澡怕冰怡自己泄了性欲，这么美丽的尤物当然需要在其性欲最高涨的时候慢慢调教享受一番，因此才脱下她的丝袜反绑双手，将她扔到了床上。在性欲的折磨下冰怡只能夹紧双腿努力摩擦，才能得到一丝丝缓解，小穴流出的淫水早已湿透内裤和短裙打湿了床单。听着哗哗的水声，脑内浮想联翩，满脑子都是男子健硕身材的幻想。“阿彦，你还要多久啊，姐姐好痒。”随着话语传出，浴室内的水声逐渐停下。“来了，来了这就出来了。”浴室的门打开，阿彦身披浴袍赤脚走出。健硕的身材对此刻的冰怡来说就是最致命的毒药。挣扎着站起身来，向阿彦跑去，一头扎进阿彦怀里就要伸嘴去解他的浴袍。饱受性欲折磨的冰怡此刻已经顾不上冷家千金的仪态与保留二十多年的处女之身了，只想眼前男人的肉棒狠狠插进自己的蜜穴中，毫不怜惜的狠狠蹂躏自己，带自己登上那从没有过的高潮。可是冰怡的动作却被阿彦拦住了“不要性急嘛，学姐，漫漫长夜，美人当下怎么能这么潦草，我们要慢慢享受嘛，怎么能像哪些野兽一样只为性欲而交媾呢？”“不管，不管，我就是要嘛。现在就要！”忍了这么久的冰怡面对健硕的男体哪里还顾得上情趣，现在满脑子都是只想让眼前这个男人狠狠将肉棒插入自己的蜜穴深处。“哎呦，看来学姐是忍受不住了呢，想要学弟为你止痒啊，那学姐是不是也应该付出一些什么啊？”冰怡抬头望着阿彦“我都把自己交给你了，还想要什么呀？”“我其实一直有一个宠物，不过因为校规的原因一直也没能去养一只，不知道学姐愿不愿意做我的美女犬满足学弟这个愿望啊？”听着阿彦的话，冰怡的脑海里浮现出了之前一个人不小心在浏览到的关于sm的片子，怎么办自己也要那个样子嘛？好羞人的，太欺负人了吧这也。一个个念头在脑海里快速的闪现着，不过因为酒水的药效还没有过去，这些念头刚刚浮现就被火热的性欲压下“好好好，都依你，学姐今晚就是你的宠物了。”“空口无凭哦，学姐等我一下”阿彦显然还不仅仅满足于此，而是想进一步羞辱眼前欲火焚身绝色尤物，潦草解决的话恐怕也只能获得一夜欢愉，阿彦想要的是长久的占有眼前的尤物，当然，这需要一点点来。说着起身从房间中翻出纸笔，刷刷刷的写着。拿到冰怡眼前，之间两张纸写着同样的内容：\n乙方：吕冰怡自愿成为甲方：李彦的性奴隶\n\t1. 主人拥有奴隶的个人主权，奴隶将被认定为主人的私人财产，可被主人任意处置且无需征得奴隶同意。\n\t2. 主人拥有奴隶的完全使用权，主人可以在任何时间任何地点以任何方式使用奴隶的身体以及奴隶的一切附属品。\n\t3. 主人拥有奴隶精神与身体的完全控制权，有权向奴隶发布任何命令。命令一经发布，奴隶必须立刻执行。\n\t4. 主人拥有对奴隶的禁止或限制权，有权禁止或限制奴隶的一切行为。\n\t5. 主人拥有精神羞辱权，有权剥夺奴隶的一切自由与尊严，主人有权用任何语言与行为强迫奴隶，以达到羞辱的目的。\n\t6. 主人拥有肉体惩罚权，有权对奴隶释以肉刑和体罚，以疼痛来调教奴隶\n\t7. 主人所拥有的权利神圣不可侵犯，主人行驶权利不需要任何理由。\n\t8. 主人有爱护奴隶，关心奴隶，疼爱奴隶的义务，有义务尽自己的最大努力保护奴隶不受除主人以外的任何人或事伤害。\n\t9. 奴隶从真正意义上法理意义上成为主人的奴隶，即奴隶之身份为真实的切实存在的而非虚拟游戏。\n\t10. 奴隶地位等同于主人所使用的任何物品（无生命体）低于主人所饲养之任何宠物。\n\t11. 奴隶本身并不具有任何法律所赋予的权利与尊严，奴隶之一切权利与尊严均归主人所有，主人可任意使用。\n\t12. 奴隶必接受主人的任何命令或者施加于奴隶的任何惩罚，奴隶必须服从而不得有任何反抗。\n\t13. 奴隶在没有主人的允许下不得离开主人制定的地点。\n\t14. 奴隶必须把自己当成是主人的玩物并服务于它的主人，遵循主人的命令取悦崇拜主人的一切不得有任何违背，\n\t15. 奴隶对主人必须坦白不得有任何的隐瞒。\n\t16. 即使主人不在身边亦必须严格执行主人的每一句话不得欺骗隐瞒。\n\t17. 主人可以按自己意愿可以任意对待奴隶要奴隶做任何事，甚至任意鞭打折磨奴隶让奴隶做自己发泄的工具，奴隶必须接受并向主人道谢。\n\t18. 奴隶的身体所有部位都归主人所有，主人可根据自己的喜好留下烙印穿刺戴环等。主人可完全按自己的意愿对待奴隶。\n\t19. 主人可随意处理奴隶包括出租或者卖掉，主人也可以让奴隶去伺候任何人，奴隶必须像服从自己的主人一样服从他们。\n\t20. 奴隶没有人格、人权、自主、自由包括身体和器官，所有的一切完全属于主人的私有物品，有主人任意支配和享受等同于其他生活工具。哪怕在公共场合只要主人下命令奴隶都必须无条件服从。\n\t21. 奴隶在任何场合、时间、未经主人允许都不得有任何性的释放或者达到性高潮，必须永远放弃自主性高潮的权利除非主人允许奴隶高潮。\n\t22. 签合约之日起奴隶自身的一切工作、亲属关系、朋友关系、通讯都、，奴隶的身体和器官都将是主人所有，奴隶必须无条件的完全服从主人下大的任何命令，接受主人的任何惩罚即使是身体和器官的伤害，奴隶都是无怨无悔心甘情愿的。\n看着纸上羞人的内容，冰怡满脸通红，可是早被性欲代替了理智的她早已无法考虑签下眼前的契约书会带来什么后果，刷刷刷签下自己的名字后又在李彦的引导下在自己的手指、阴唇，菊花，胸部以及脚底涂上口红后印在了两张纸上。然后快速的交到了眼前男子的手上",-->
<!--        "viewCount": 5,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": false,-->
<!--        "recommendStatus": false,-->
<!--        "password": "1020322274Li",-->
<!--        "tips": "私人作品",-->
<!--        "viewStatus": false,-->
<!--        "createTime": "2024-04-21 09:02:51",-->
<!--        "updateTime": "2024-04-25 00:41:57",-->
<!--        "updateBy": "Stardust",-->
<!--        "sortId": 5,-->
<!--        "labelId": 5,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 5,-->
<!--          "sortName": "智能家居",-->
<!--          "sortDescription": "我的洋垃圾折腾过程",-->
<!--          "sortType": 1,-->
<!--          "priority": 4,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 5,-->
<!--          "sortId": 5,-->
<!--          "labelName": "路由",-->
<!--          "labelDescription": "软路由",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      },-->
<!--      {-->
<!--        "id": 24,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11712319669318445.png",-->
<!--        "articleTitle": "openWrt软路由",-->
<!--        "articleContent": "#### 查看网卡\n```language\nifconfig\n```\n```language\ndocker0   Link encap:Ethernet  HWaddr 02:42:47:9F:3D:2F  \n          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0\n          UP BROADCAST MULTICAST  MTU:1500  Metric:1\n          RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000 \n          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)\n\neth0      Link encap:Ethernet  HWaddr 38:D5:47:97:3C:86  \n          inet addr:192.168.3.49  Bcast:192.168.3.255  Mask:255.255.255.0\n          inet6 addr: fe80::3ad5:47ff:fe97:3c86/64 Scope:Link\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\n          RX packets:146374 errors:0 dropped:0 overruns:0 frame:0\n          TX packets:79151 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000 \n          RX bytes:67052550 (63.9 MiB)  TX bytes:12273333 (11.7 MiB)\n\nlo        Link encap:Local Loopback\n          inet addr:127.0.0.1  Mask:255.0.0.0\n          inet6 addr: ::1/128 Scope:Host\n          UP LOOPBACK RUNNING  MTU:65536  Metric:1\n          RX packets:11342 errors:0 dropped:0 overruns:0 frame:0\n          TX packets:11342 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1 \n          RX bytes:1763361 (1.6 MiB)  TX bytes:1763361 (1.6 MiB)\n\nztluvyea7 Link encap:Ethernet  HWaddr B2:F0:A7:02:8C:96  \n          inet addr:10.18.85.21  Bcast:10.18.85.255  Mask:255.255.255.0\n          inet6 addr: fe80::b0f0:a7ff:fe02:8c96/64 Scope:Link\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\n          RX packets:2721 errors:0 dropped:0 overruns:0 frame:0\n          TX packets:1539 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000 \n          RX bytes:275780 (269.3 KiB)  TX bytes:535622 (523.0 KiB)\n```\n我的 nas 的 ip 是 192.168.3.49,所以我看一下下面的哪个是匹配的,从下面图中可以看到网卡名字叫做 eth0 的是匹配的,如果你的 nas 使用了虚拟机可能会不一样,注意区分\n#### 创建网络\n首先开启管理员模式\n```\nsudo -i\n```\n密码是你的nas的密码\n\n接着使用命令\n\n```\nip link set eth0 promisc on\n```\n\n上面的 eth0 是我的网卡\n\n2.4 创建 docker macvlan 网络\n```\ndocker network create -d macvlan &#45;&#45;subnet=192.168.3.0/24 &#45;&#45;gateway 192.168.3.1 -o parent=eth0 mac-net\n```\n\n注意上面的\n\n192.168.3.1 是你的路由器,每个人的不一样\n192.168.3.0/24 中的 192.168.3 是你路由器 192.168.3.1 的前三位\neth0 是你的网卡名字,上面已经说过了\n#### 启动openWrt\n创建配置文件\n```\nmkdir -p /home/docker/openwrt\nvim /home/docker/openwrt/network\n```\n```\nconfig interface  'loopback'\n        option ifname  'lo'\n        option proto  'static'\n        option ipaddr  '127.0.0.1'\n        option netmask  '255.0.0.0'\n \nconfig globals  'globals'\n        option packet_steering  '1'\n \nconfig interface  'lan'\n        option  type 'bridge'\n        option ifname  'eth0'\n        option proto  'static'\n        option netmask  '255.255.255.0'\n        option ip6assign  '60'\n        option ipaddr  'xxx.xxx.xxx.xxx' 　　　　　　 #设置为openwrt管理地址\n        option gateway  'xxx.xxx.xxx.xxx' 　　　　　  #设置网关\n        option broadcast  'xxx.xxx.xxx.xxx' 　　　　 #设置广播地址，可不用这一行\n        option dns  'xxx.xxx.xxx.xxx' 　　　　　　　　 #设置DNS为网关\n \nconfig interface  'vpn0'\n        option ifname  'tun0'\n        option proto  'none'\n```\n启动容器\n```\ndocker run -d &#45;&#45;restart always &#45;&#45;network mac-net &#45;&#45;ip 192.168.3.66 -v /home/docker/openwrt/network:/etc/config/network &#45;&#45;privileged &#45;&#45;name openwrt sulinggg/openwrt:x86_64   /sbin/init \n```\n登录管理地址\n默认用户名root没有密码",-->
<!--        "viewCount": 5,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-04-05 12:21:28",-->
<!--        "updateTime": "2024-04-25 00:41:52",-->
<!--        "updateBy": "Stardust",-->
<!--        "sortId": 5,-->
<!--        "labelId": 5,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 5,-->
<!--          "sortName": "智能家居",-->
<!--          "sortDescription": "我的洋垃圾折腾过程",-->
<!--          "sortType": 1,-->
<!--          "priority": 4,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 5,-->
<!--          "sortId": 5,-->
<!--          "labelName": "路由",-->
<!--          "labelDescription": "软路由",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      }-->
<!--    ]-->
<!--  },-->
<!--  {-->
<!--    "typeName": "前端笔记本",-->
<!--    "typeId": 6,-->
<!--    "articles": [-->
<!--      {-->
<!--        "id": 32,-->
<!--        "userId": 1,-->
<!--        "articleCover": "http://cdn.starheart.vip/articleCover/Stardust11717034783556448.png",-->
<!--        "articleTitle": "Vue3集成mavon-editor富文本编辑器",-->
<!--        "articleContent": "# 安装依赖\n安装mavon-editor\n```language\nnpm install &#45;&#45;save mavon-editor@3.0.1\n```\n安装markdown-it\n```language\nnpm install markdown-it\n```\n```language\n// node.js\n// can use `require('markdown-it')` for CJS\nimport markdownit from 'markdown-it'\nconst md = markdownit()\nconst result = md.render('# markdown-it rulezz!');\n \n// browser with UMD build, added to \"window\" on script load\n// Note, there is no dash in \"markdownit\".\nconst md = window.markdownit();\nconst result = md.render('# markdown-it rulezz!');\n```\n安装highlight.js\n```language\nnpm install highlight.js\n```\n```language\n在main.js全局注册\n\nimport Vue from 'vue';  \nimport VueHighlightJS from 'vue-highlight.js';  \nimport 'highlight.js/styles/default.css';\n```\n\n## mavon-editor的使用\n全局注册\n```\nimport mavonEditor from 'mavon-editor'\nimport 'mavon-editor/dist/css/index.css'\n\napp.use(mavonEditor)\n```\n\n使用\n```language\n<mavon-editor ref=\"mavonEditorRef\" v-model=\"form.articleContent\" :ishljs=\"true\" @imgAdd=\"imgAdd\" style=\"width: 100%\"/>\n```\n\n",-->
<!--        "viewCount": 0,-->
<!--        "likeCount": 0,-->
<!--        "commentStatus": true,-->
<!--        "recommendStatus": false,-->
<!--        "password": null,-->
<!--        "tips": null,-->
<!--        "viewStatus": true,-->
<!--        "createTime": "2024-05-30 02:06:32",-->
<!--        "updateTime": "2024-05-30 02:06:32",-->
<!--        "updateBy": null,-->
<!--        "sortId": 6,-->
<!--        "labelId": 6,-->
<!--        "commentCount": null,-->
<!--        "username": null,-->
<!--        "sort": {-->
<!--          "id": 6,-->
<!--          "sortName": "前端笔记本",-->
<!--          "sortDescription": "前端基础知识",-->
<!--          "sortType": 0,-->
<!--          "priority": 1,-->
<!--          "countOfSort": null,-->
<!--          "labels": null-->
<!--        },-->
<!--        "label": {-->
<!--          "id": 6,-->
<!--          "sortId": 6,-->
<!--          "labelName": "vue",-->
<!--          "labelDescription": "vue",-->
<!--          "countOfLabel": null-->
<!--        }-->
<!--      }-->
<!--    ]-->
<!--  }-->
<!--]);-->
<!--const pagination = ref({-->
<!--  current: 1,-->
<!--  size: 10,-->
<!--  total: 0,-->
<!--  searchKey: "",-->
<!--  sortId: null,-->
<!--  articleSearch: ""-->
<!--})-->


<!--const data = reactive({-->
<!--  form: {},-->
<!--  queryParams: {-->
<!--    pageNum: 1,-->
<!--    pageSize: 10,-->
<!--  },-->
<!--  rules: {-->
<!--  }-->
<!--});-->

<!--const { queryParams, form, rules } = toRefs(data);-->

<!--/** 查询家庭信息列表 */-->
<!--function getList() {-->
<!--  loading.value = true;-->

<!--}-->

<!--// 取消按钮-->
<!--function cancel() {-->
<!--  open.value = false;-->
<!--  reset();-->
<!--}-->

<!--// 表单重置-->
<!--function reset() {-->

<!--}-->


<!--function navigation(selector) {-->
<!--  let pageId = document.querySelector(selector);-->
<!--  window.scrollTo({-->
<!--    top: pageId.offsetTop,-->
<!--    behavior: "smooth"-->
<!--  });-->
<!--}-->


<!--function selectArticle(){-->

<!--}-->


<!--function selectSort(){-->

<!--}-->



<!--function pageArticles(){-->

<!--}-->

<!--// getList();-->
<!--</script>-->
<!--<style scoped>-->

<!--.signature-wall {-->
<!--  /* 向下排列 */-->
<!--  display: flex;-->
<!--  flex-direction: column;-->
<!--  position: relative;-->
<!--  user-select: none;-->
<!--  height: 100vh;-->
<!--  overflow: hidden;-->
<!--}-->

<!--.playful {-->
<!--  color: var(&#45;&#45;white);-->
<!--  font-size: 40px;-->
<!--}-->

<!--.printer {-->
<!--  cursor: pointer;-->
<!--  color: var(&#45;&#45;white);-->
<!--  background: var(&#45;&#45;translucent);-->
<!--  border-radius: 10px;-->
<!--  padding-left: 10px;-->
<!--  padding-right: 10px;-->
<!--}-->

<!--#bannerWave1 {-->
<!--  height: 84px;-->
<!--  background: var(&#45;&#45;bannerWave1);-->
<!--  position: absolute;-->
<!--  width: 200%;-->
<!--  bottom: 0;-->
<!--  z-index: 10;-->
<!--  animation: gradientBG 120s linear infinite;-->
<!--}-->

<!--#bannerWave2 {-->
<!--  height: 100px;-->
<!--  background: var(&#45;&#45;bannerWave2);-->
<!--  position: absolute;-->
<!--  width: 400%;-->
<!--  bottom: 0;-->
<!--  z-index: 5;-->
<!--  animation: gradientBG 120s linear infinite;-->
<!--}-->

<!--/* 光标 */-->
<!--.cursor {-->
<!--  margin-left: 1px;-->
<!--  animation: hideToShow 0.7s infinite;-->
<!--  font-weight: 200;-->
<!--}-->

<!--.el-icon-arrow-down {-->
<!--  font-size: 40px;-->
<!--  font-weight: bold;-->
<!--  color: var(&#45;&#45;white);-->
<!--  position: absolute;-->
<!--  bottom: 60px;-->
<!--  animation: my-shake 1.5s ease-out infinite;-->
<!--  z-index: 15;-->
<!--  cursor: pointer;-->
<!--}-->



<!--.page-container-wrap {-->
<!--  background: var(&#45;&#45;background);-->
<!--  position: relative;-->
<!--}-->

<!--.page-container {-->
<!--  display: flex;-->
<!--  justify-content: center;-->
<!--  width: 90%;-->
<!--  padding: 0 20px 40px 20px;-->
<!--  margin: 0 auto;-->
<!--  flex-direction: row;-->
<!--}-->

<!--.recent-posts {-->
<!--  width: 70%;-->
<!--}-->

<!--.announcement {-->
<!--  padding: 22px;-->
<!--  border: 1px dashed var(&#45;&#45;lightGray);-->
<!--  color: var(&#45;&#45;greyFont);-->
<!--  border-radius: 10px;-->
<!--  display: flex;-->
<!--  margin: 40px auto 40px;-->
<!--}-->

<!--.announcement i {-->
<!--  color: var(&#45;&#45;themeBackground);-->
<!--  font-size: 22px;-->
<!--  margin: auto 0;-->
<!--  animation: scale 0.8s ease-in-out infinite;-->
<!--}-->
<!--.announcement-max-width{-->
<!--  max-width: 780px;-->
<!--}-->

<!--.announcement div div {-->
<!--  margin-left: 20px;-->
<!--  line-height: 30px;-->
<!--}-->

<!--.aside-content {-->
<!--  width: calc(30% - 40px);-->
<!--  user-select: none;-->
<!--  margin-top: 40px;-->
<!--  margin-right: 40px;-->
<!--  max-width: 300px;-->
<!--  float: right;-->
<!--}-->

<!--.pagination-wrap {-->
<!--  display: flex;-->
<!--  justify-content: center;-->
<!--  margin-top: 40px;-->
<!--}-->

<!--.pagination {-->
<!--  padding: 13px 15px;-->
<!--  border: 1px solid var(&#45;&#45;lightGray);-->
<!--  border-radius: 3rem;-->
<!--  color: var(&#45;&#45;greyFont);-->
<!--  width: 100px;-->
<!--  user-select: none;-->
<!--  cursor: pointer;-->
<!--  text-align: center;-->
<!--}-->

<!--.pagination:hover {-->
<!--  border: 1px solid var(&#45;&#45;themeBackground);-->
<!--  color: var(&#45;&#45;themeBackground);-->
<!--  box-shadow: 0 0 5px var(&#45;&#45;themeBackground);-->
<!--}-->

<!--@media screen and (max-width: 1100px) {-->
<!--  .recent-posts {-->
<!--    width: 100%;-->
<!--  }-->

<!--  .page-container {-->
<!--    width: 100%;-->
<!--  }-->
<!--}-->

<!--@media screen and (max-width: 1000px) {-->

<!--  .page-container {-->
<!--    /* 文章栏与侧标栏垂直排列 */-->
<!--    flex-direction: column;-->
<!--  }-->

<!--  .aside-content {-->
<!--    width: 100%;-->
<!--    max-width: unset;-->
<!--    float: unset;-->
<!--    margin: 40px auto 0;-->
<!--  }-->
<!--}-->

<!--@media screen and (max-width: 768px) {-->

<!--  h1 {-->
<!--    font-size: 35px;-->
<!--  }-->
<!--}-->

<!--.app-container {-->
<!--  padding: 0px !important;-->
<!--}-->
<!--</style>-->
